package com.locus.locus.client;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;
import com.locus.locus.client.dados.EstabelecimentoWrapper;
import com.locus.locus.client.dados.UsuarioLocusWrapper;
import com.locus.locus.client.widgets.WidgetMenu;
import com.locus.locus.client.widgets.WidgetMenu.Link;

public class AdministracaoSite implements EntryPoint {
	
	private final AsyncCallback<UsuarioLocusWrapper> callbackUsuario = new AsyncCallback<UsuarioLocusWrapper>() {
		@Override
		public void onSuccess(UsuarioLocusWrapper usuario) {
			final List<Link> links = new ArrayList<Link>();
			
			for(EstabelecimentoWrapper estabelecimento:usuario.getEstabelecimentos()){
				links.add(new Link("/AdmininstracaoSite.html#" + estabelecimento.getChave(), estabelecimento.getNome(), estabelecimento.getChave()));
			}
			RootPanel.get("menu").add(new WidgetMenu(links, callbackSelecaoMenu));
		}
		
		@Override
		public void onFailure(Throwable caught) {
			Window.alert("falhou em buscar usuario");
		}
	};
	protected final ValueChangeHandler<String> callbackSelecaoMenu = new ValueChangeHandler<String>() {
		@Override
		public void onValueChange(ValueChangeEvent<String> event) {
			estabelecimentoSelecinado();
		}
	};
	private final ServidorAsync servidor = GWT.create(Servidor.class);

	@Override
	public void onModuleLoad() {
		this.servidor.buscarUsuario(Window.Location.getHref(), callbackUsuario);
	}

	protected void estabelecimentoSelecinado() {
		final String token = History.getToken();
	}

}
